The present invention relates generally to caches, and more particularly to allocation of texture data to a cache in a graphics processing system.
Graphics processing systems generate graphics for display on video monitors and the like. The graphics are often extremely detailed, and provide realistic views of three dimensional images on two dimensional displays. A variety of techniques are utilized to increase the realism of displays. For example, graphics processing systems often determine what objects should be displayed based on a supposed eye point of an observer, as well as the relative sizes of the objects. In addition, one technique widely used to increase realism of a display is the use of textures. Textures indicate surface qualities of an object. The surface qualities may be variations in color, as well as variations in the physical surface of the object.
Textures are often stored in the form of texture maps which are often defined with respect to a surface. More specifically, texture maps are often defined with respect to types of surfaces, as well as the level of detail of the surfaces. In addition, much as a surface of a video screen is comprised of pixels, texture maps are comprised of texture elements, or texels. As the number of surfaces displayed during the course of execution of an application are often very large, and details of the surfaces complex, the size of the texture maps, and therefore the number of texels, may be large.
Texels are used in conjunction with geometric information of an object to determine color and intensity of a pixel displayed on a display device. Often multiple texels from a single texture map are used, or blended, to determine the display characteristics of a pixel. In addition, at times texels from more than one texture map are used to determine the display characteristics of any one pixel. Therefore, color and intensity of a single pixel may be formed through blending multiple texels, and these texels may come from more than one texture map.
Graphics processing systems, therefore, require access to large numbers of texels to form realistic displays. This data is generally stored within a computer system memory. Accessing computer system memory, however, is often a relatively lengthy process and may produce delays which could degrade the realism of generated displays.
A graphics cache dedicated to storing graphics data is sometimes used to enhance accessibility of graphics data by a graphics processing system. The graphics cache is provided graphics data from the system memory prior to a demand by the graphics processing system. The graphics system, therefore, has graphics data available for use when desired, thereby reducing the need to promptly access system memory and reducing problems associated with memory latency.
Preferably, data for use by the graphics processing system is available for use by the graphics processing system when needed. This maximizes cache usage and reduces cache swapping and texture map fetching, thereby increasing graphics processing system performance. Texture maps are often quite large, however, and without sufficient care in providing texture map data to the graphics cache, less than optimum usage of the graphics cache may result. Moreover, during operation of the graphics processing system demands for various texture maps may dynamically vary.